#ifndef _GUI_H
#define _GUI_H

#include "common.h"
#include <SFGUI/SFGUI.hpp>
#include <SFML/Graphics.hpp>

class GuiObject;
class MouseListener;
class GuiController;
class Camera;
class City;

class Gui
{
    public:
    Gui();

    void init(sf::RenderWindow* window, Camera* camera, City* city);
    void update(double dt);
    void render(sf::RenderWindow& window);
    void eventHandle(sf::Event event);

    static Gui* get();

    private:
    sfg::SFGUI      sfgui;
    sfg::Desktop    desktop;

    std::list<GuiObject*> objList;
    std::list<MouseListener*> mouseListeners;

    GuiController* guiCtrl;
    static Gui* gui;
};
#endif // _GUI_H
